home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / sos3-2.lha / include / agg_sos.h < prev    next >
C/C++ Source or Header  |  1991-10-24  |  31KB  |  622 lines

  1. #ifndef agg_SOSI
  2. #define agg_SOSI 1
  3.  
  4. #include "agg_use.h"
  5. #include "knl_sos.h"
  6. class _sos_Aggregate;
  7. class _sos_Object_Collection;
  8. class _sos_Object_sos_Object_Association;
  9. class _sos_Cursor;
  10. class _sos_Object_List;
  11. class _sos_Object_Array;
  12. class _sos_Object_sos_Object_Mapping;
  13. class _sos_Object_Bag;
  14. class _sos_Object_Set;
  15. class _sos_Node;
  16. class _sos_Array_node;
  17. class _sos_List_node;
  18. class _sos_Map_node;
  19. class _sos_Bag_node;
  20. class _sos_Aggregate:virtual public _sos_Object
  21. {  friend class sos_Aggregate;
  22.    virtual sos_Offset _offset_sos_Object () { return 0; }
  23.    virtual sos_Offset _offset_sos_Aggregate () { return 8; }
  24. public:
  25.    static _sos_Aggregate* _make(sos_Typed_id&);
  26.    virtual sos_Offset _size();
  27.    void _create(sos_Typed_id&);
  28.    void _copy(sos_Typed_id&,sos_Aggregate);
  29.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  30.    virtual void destroy(sos_Typed_id&);
  31.    virtual void assign(sos_Typed_id&,sos_Object);
  32.    static void local_assign(sos_Aggregate,sos_Object);
  33.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  34.    static sos_Bool local_equal(sos_Aggregate,sos_Object,sos_Eq_kind);
  35.    virtual sos_Int hash_value(sos_Typed_id&);
  36.    static sos_Int local_hash_value(sos_Aggregate);
  37.    virtual sos_Bool is_empty(sos_Typed_id&);
  38.    virtual void clear(sos_Typed_id&);
  39.    virtual sos_Int card(sos_Typed_id&);
  40.    virtual sos_Cursor open_cursor(sos_Typed_id&,sos_Container _p1 = TEMP_CONTAINER);
  41.    virtual void close_cursor(sos_Typed_id&,sos_Cursor _p1);
  42.    virtual sos_Cursor duplicate(sos_Typed_id&,sos_Cursor _p1);
  43.    virtual sos_Bool is_valid(sos_Typed_id&,sos_Cursor _p1);
  44.    virtual void remove_at(sos_Typed_id&,sos_Cursor _p1);
  45.    virtual sos_Bool to_first(sos_Typed_id&,sos_Cursor _p1);
  46.    virtual sos_Bool to_last(sos_Typed_id&,sos_Cursor _p1);
  47.    virtual sos_Bool to_succ(sos_Typed_id&,sos_Cursor _p1,sos_Int _p2 = 1);
  48.    virtual sos_Bool to_pred(sos_Typed_id&,sos_Cursor _p1,sos_Int _p2 = 1);
  49. protected:
  50. };
  51. extern _sos_Aggregate *__sos_Aggregate_obj;
  52. class _sos_Object_Collection:virtual public _sos_Aggregate
  53. {  friend class sos_Object_Collection;
  54.    virtual sos_Offset _offset_sos_Object () { return 0; }
  55.    virtual sos_Offset _offset_sos_Aggregate () { return 8; }
  56.    virtual sos_Offset _offset_sos_Object_Collection () { return 8; }
  57. public:
  58.    static _sos_Object_Collection* _make(sos_Typed_id&);
  59.    virtual sos_Offset _size();
  60.    void _create(sos_Typed_id&,sos_Bool based_on_equal = FALSE);
  61. protected:
  62.    static void _create_comps(sos_Object_Collection,sos_Bool based_on_equal = FALSE);
  63. public:
  64.    void _copy(sos_Typed_id&,sos_Object_Collection);
  65. protected:
  66.    static void _copy_comps(sos_Object_Collection,sos_Object_Collection);
  67. public:
  68.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  69.    virtual void destroy(sos_Typed_id&);
  70.    virtual void assign(sos_Typed_id&,sos_Object);
  71.    static void local_assign(sos_Object_Collection,sos_Object);
  72.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  73.    static sos_Bool local_equal(sos_Object_Collection,sos_Object,sos_Eq_kind);
  74.    virtual sos_Int hash_value(sos_Typed_id&);
  75.    static sos_Int local_hash_value(sos_Object_Collection);
  76.    virtual sos_Bool is_element(sos_Typed_id&,sos_Object _p1);
  77.    virtual sos_Object get(sos_Typed_id&,sos_Cursor _p1);
  78. protected:
  79.    virtual sos_Bool get_based_on_equal(sos_Typed_id&);
  80.    virtual void set_based_on_equal(sos_Typed_id&,sos_Bool);
  81. public:
  82. protected:
  83. };
  84. extern _sos_Object_Collection *__sos_Object_Collection_obj;
  85. class _sos_Object_sos_Object_Association:virtual public _sos_Aggregate
  86. {  friend class sos_Object_sos_Object_Association;
  87.    virtual sos_Offset _offset_sos_Object () { return 0; }
  88.    virtual sos_Offset _offset_sos_Aggregate () { return 8; }
  89.    virtual sos_Offset _offset_sos_Object_sos_Object_Association () { return 8; }
  90. public:
  91.    static _sos_Object_sos_Object_Association* _make(sos_Typed_id&);
  92.    virtual sos_Offset _size();
  93.    void _create(sos_Typed_id&,sos_Bool role1_based_on_equal = FALSE,sos_Bool role2_based_on_equal = FALSE);
  94. protected:
  95.    static void _create_comps(sos_Object_sos_Object_Association,sos_Bool role1_based_on_equal = FALSE,sos_Bool role2_based_on_equal = FALSE);
  96. public:
  97.    void _copy(sos_Typed_id&,sos_Object_sos_Object_Association);
  98. protected:
  99.    static void _copy_comps(sos_Object_sos_Object_Association,sos_Object_sos_Object_Association);
  100. public:
  101.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  102.    virtual void destroy(sos_Typed_id&);
  103.    virtual void assign(sos_Typed_id&,sos_Object);
  104.    static void local_assign(sos_Object_sos_Object_Association,sos_Object);
  105.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  106.    static sos_Bool local_equal(sos_Object_sos_Object_Association,sos_Object,sos_Eq_kind);
  107.    virtual sos_Int hash_value(sos_Typed_id&);
  108.    static sos_Int local_hash_value(sos_Object_sos_Object_Association);
  109.    virtual sos_Bool is_role1(sos_Typed_id&,sos_Object _p1);
  110.    virtual sos_Bool is_role2(sos_Typed_id&,sos_Object _p1);
  111.    virtual sos_Object get_role1(sos_Typed_id&,sos_Cursor _p1);
  112.    virtual sos_Object get_role2(sos_Typed_id&,sos_Cursor _p1);
  113. protected:
  114.    virtual sos_Bool get_role1_based_on_equal(sos_Typed_id&);
  115.    virtual void set_role1_based_on_equal(sos_Typed_id&,sos_Bool);
  116.    virtual sos_Bool get_role2_based_on_equal(sos_Typed_id&);
  117.    virtual void set_role2_based_on_equal(sos_Typed_id&,sos_Bool);
  118. public:
  119. protected:
  120. };
  121. extern _sos_Object_sos_Object_Association *__sos_Object_sos_Object_Association_obj;
  122. class _sos_Cursor:virtual public _sos_Object
  123. {  friend class sos_Cursor;
  124.    virtual sos_Offset _offset_sos_Object () { return 0; }
  125.    virtual sos_Offset _offset_sos_Cursor () { return 8; }
  126. public:
  127.    static _sos_Cursor* _make(sos_Typed_id&);
  128.    virtual sos_Offset _size();
  129.    void _create(sos_Typed_id&,sos_Aggregate domain);
  130. protected:
  131.    static void _create_comps(sos_Cursor,sos_Aggregate domain);
  132. public:
  133.    void _copy(sos_Typed_id&,sos_Cursor);
  134. protected:
  135.    static void _copy_comps(sos_Cursor,sos_Cursor);
  136. public:
  137.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  138.    virtual void destroy(sos_Typed_id&);
  139.    virtual void assign(sos_Typed_id&,sos_Object);
  140.    static void local_assign(sos_Cursor,sos_Object);
  141.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  142.    static sos_Bool local_equal(sos_Cursor,sos_Object,sos_Eq_kind);
  143.    virtual sos_Int hash_value(sos_Typed_id&);
  144.    static sos_Int local_hash_value(sos_Cursor);
  145.    virtual sos_Bool defined_for(sos_Typed_id&,sos_Aggregate _p1);
  146.    virtual sos_Node get_current(sos_Typed_id&);
  147.    virtual void set_current(sos_Typed_id&,sos_Node);
  148. private:
  149.    virtual sos_Aggregate get_domain(sos_Typed_id&);
  150.    virtual void set_domain(sos_Typed_id&,sos_Aggregate);
  151. public:
  152. protected:
  153.    static void local_initialize(sos_Cursor _p1);
  154. };
  155. extern _sos_Cursor *__sos_Cursor_obj;
  156. class _sos_Object_List:virtual public _sos_Object_Collection
  157. {  friend class sos_Object_List;
  158.    virtual sos_Offset _offset_sos_Object () { return 0; }
  159.    virtual sos_Offset _offset_sos_Aggregate () { return 8; }
  160.    virtual sos_Offset _offset_sos_Object_Collection () { return 8; }
  161.    virtual sos_Offset _offset_sos_Object_List () { return 9; }
  162. public:
  163.    static _sos_Object_List* _make(sos_Typed_id&);
  164.    virtual sos_Offset _size();
  165.    void _create(sos_Typed_id&,sos_Bool based_on_equal = FALSE);
  166.    void _copy(sos_Typed_id&,sos_Object_List);
  167.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  168.    virtual void destroy(sos_Typed_id&);
  169.    virtual void assign(sos_Typed_id&,sos_Object);
  170.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  171.    virtual sos_Int hash_value(sos_Typed_id&);
  172.    virtual void append(sos_Typed_id&,sos_Object _p1);
  173.    virtual void insert(sos_Typed_id&,Index _p1,sos_Object _p2);
  174.    virtual void remove(sos_Typed_id&,Index _p1);
  175.    virtual sos_Object get_nth(sos_Typed_id&,Index _p1);
  176.    virtual void set_nth(sos_Typed_id&,Index _p1,sos_Object _p2);
  177.    virtual void __plus_assign(sos_Typed_id&,sos_Object_List _p1);
  178.    virtual Index current_pos(sos_Typed_id&,sos_Cursor _p1);
  179.    virtual sos_Bool move_cursor(sos_Typed_id&,sos_Cursor _p1,Index _p2);
  180.    virtual void insert_before(sos_Typed_id&,sos_Cursor _p1,sos_Object _p2);
  181.    virtual void insert_after(sos_Typed_id&,sos_Cursor _p1,sos_Object _p2);
  182.    virtual void set(sos_Typed_id&,sos_Cursor _p1,sos_Object _p2);
  183.    virtual sos_Object get(sos_Typed_id&,sos_Cursor _p1);
  184.    virtual void remove_at(sos_Typed_id&,sos_Cursor _p1);
  185.    virtual sos_Int card(sos_Typed_id&);
  186.    virtual sos_Cursor open_cursor(sos_Typed_id&,sos_Container _p1 = TEMP_CONTAINER);
  187.    virtual void close_cursor(sos_Typed_id&,sos_Cursor _p1);
  188.    virtual sos_Cursor duplicate(sos_Typed_id&,sos_Cursor _p1);
  189.    virtual sos_Bool is_valid(sos_Typed_id&,sos_Cursor _p1);
  190.    virtual sos_Bool to_first(sos_Typed_id&,sos_Cursor _p1);
  191.    virtual sos_Bool to_last(sos_Typed_id&,sos_Cursor _p1);
  192.    virtual sos_Bool to_succ(sos_Typed_id&,sos_Cursor _p1,sos_Int _p2 = 1);
  193.    virtual sos_Bool to_pred(sos_Typed_id&,sos_Cursor _p1,sos_Int _p2 = 1);
  194. private:
  195.    virtual sos_List_node get_first(sos_Typed_id&);
  196.    virtual void set_first(sos_Typed_id&,sos_List_node);
  197.    virtual sos_List_node get_last(sos_Typed_id&);
  198.    virtual void set_last(sos_Typed_id&,sos_List_node);
  199.    virtual sos_Int get_cardinality(sos_Typed_id&);
  200.    virtual void set_cardinality(sos_Typed_id&,sos_Int);
  201. public:
  202. protected:
  203.    static void local_initialize(sos_Object_List _p1);
  204.    static void local_finalize(sos_Object_List _p1);
  205.    static void local_assign(sos_Object_List _p1,sos_Object _p2);
  206.    static sos_Bool local_equal(sos_Object_List _p1,sos_Object _p2,sos_Eq_kind _p3);
  207.    static sos_Int local_hash_value(sos_Object_List _p1);
  208. };
  209. extern _sos_Object_List *__sos_Object_List_obj;
  210. class _sos_Object_Array:virtual public _sos_Object_Collection
  211. {  friend class sos_Object_Array;
  212.    virtual sos_Offset _offset_sos_Object () { return 0; }
  213.    virtual sos_Offset _offset_sos_Aggregate () { return 8; }
  214.    virtual sos_Offset _offset_sos_Object_Collection () { return 8; }
  215.    virtual sos_Offset _offset_sos_Object_Array () { return 9; }
  216. public:
  217.    static _sos_Object_Array* _make(sos_Typed_id&);
  218.    virtual sos_Offset _size();
  219.    void _create(sos_Typed_id&,Index bottom,Index top,sos_Bool based_on_equal = FALSE);
  220. protected:
  221.    static void _create_comps(sos_Object_Array,Index bottom,Index top,sos_Bool based_on_equal = FALSE);
  222. public:
  223.    void _copy(sos_Typed_id&,sos_Object_Array);
  224. protected:
  225.    static void _copy_comps(sos_Object_Array,sos_Object_Array);
  226. public:
  227.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  228.    virtual void destroy(sos_Typed_id&);
  229.    virtual void assign(sos_Typed_id&,sos_Object);
  230.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  231.    virtual sos_Int hash_value(sos_Typed_id&);
  232.    virtual Index get_bottom(sos_Typed_id&);
  233.    virtual Index get_top(sos_Typed_id&);
  234.    virtual sos_Object get_nth(sos_Typed_id&,Index _p1);
  235.    virtual void set_nth(sos_Typed_id&,Index _p1,sos_Object _p2);
  236.    virtual void shift(sos_Typed_id&,Index start,sos_Int number);
  237.    virtual void rotate(sos_Typed_id&,sos_Int number);
  238.    virtual sos_Object __index(sos_Typed_id&,Index _p1);
  239.    virtual Index current_pos(sos_Typed_id&,sos_Cursor _p1);
  240.    virtual sos_Bool move_cursor(sos_Typed_id&,sos_Cursor _p1,Index _p2);
  241.    virtual void set(sos_Typed_id&,sos_Cursor _p1,sos_Object _p2);
  242.    virtual sos_Int size(sos_Typed_id&);
  243.    virtual sos_Object get(sos_Typed_id&,sos_Cursor _p1);
  244.    virtual void remove_at(sos_Typed_id&,sos_Cursor _p1);
  245.    virtual sos_Int card(sos_Typed_id&);
  246.    virtual sos_Cursor open_cursor(sos_Typed_id&,sos_Container _p1 = TEMP_CONTAINER);
  247.    virtual void close_cursor(sos_Typed_id&,sos_Cursor _p1);
  248.    virtual sos_Cursor duplicate(sos_Typed_id&,sos_Cursor _p1);
  249.    virtual sos_Bool is_valid(sos_Typed_id&,sos_Cursor _p1);
  250.    virtual sos_Bool to_first(sos_Typed_id&,sos_Cursor _p1);
  251.    virtual sos_Bool to_last(sos_Typed_id&,sos_Cursor _p1);
  252.    virtual sos_Bool to_succ(sos_Typed_id&,sos_Cursor _p1,sos_Int _p2 = 1);
  253.    virtual sos_Bool to_pred(sos_Typed_id&,sos_Cursor _p1,sos_Int _p2 = 1);
  254. private:
  255.    virtual sos_Int element_size(sos_Typed_id&);
  256.    virtual Index get_bottom_index(sos_Typed_id&);
  257.    virtual void set_bottom_index(sos_Typed_id&,Index);
  258.    virtual Index get_top_index(sos_Typed_id&);
  259.    virtual void set_top_index(sos_Typed_id&,Index);
  260.    virtual sos_Offset get_address(sos_Typed_id&);
  261.    virtual void set_address(sos_Typed_id&,sos_Offset);
  262. public:
  263. protected:
  264.    static void local_initialize(sos_Object_Array _p1);
  265.    static void local_finalize(sos_Object_Array _p1);
  266.    static void local_assign(sos_Object_Array _p1,sos_Object _p2);
  267.    static sos_Bool local_equal(sos_Object_Array _p1,sos_Object _p2,sos_Eq_kind _p3);
  268.    static sos_Int local_hash_value(sos_Object_Array _p1);
  269. };
  270. extern _sos_Object_Array *__sos_Object_Array_obj;
  271. class _sos_Object_sos_Object_Mapping:virtual public _sos_Object_sos_Object_Association
  272. {  friend class sos_Object_sos_Object_Mapping;
  273.    virtual sos_Offset _offset_sos_Object () { return 0; }
  274.    virtual sos_Offset _offset_sos_Aggregate () { return 8; }
  275.    virtual sos_Offset _offset_sos_Object_sos_Object_Association () { return 8; }
  276.    virtual sos_Offset _offset_sos_Object_sos_Object_Mapping () { return 10; }
  277. public:
  278.    static _sos_Object_sos_Object_Mapping* _make(sos_Typed_id&);
  279.    virtual sos_Offset _size();
  280.    void _create(sos_Typed_id&,sos_Bool list_cursor = FALSE,sos_Bool key_based_on_equal = FALSE,sos_Bool info_based_on_equal = FALSE);
  281. protected:
  282.    static void _create_comps(sos_Object_sos_Object_Mapping,sos_Bool list_cursor = FALSE,sos_Bool key_based_on_equal = FALSE,sos_Bool info_based_on_equal = FALSE);
  283. public:
  284.    void _copy(sos_Typed_id&,sos_Object_sos_Object_Mapping);
  285. protected:
  286.    static void _copy_comps(sos_Object_sos_Object_Mapping,sos_Object_sos_Object_Mapping);
  287. public:
  288.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  289.    virtual void destroy(sos_Typed_id&);
  290.    virtual void assign(sos_Typed_id&,sos_Object);
  291.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  292.    virtual sos_Int hash_value(sos_Typed_id&);
  293.    virtual sos_Bool is_key(sos_Typed_id&,sos_Object _p1);
  294.    virtual sos_Bool is_info(sos_Typed_id&,sos_Object _p1);
  295.    virtual void insert(sos_Typed_id&,sos_Object _p1,sos_Object _p2);
  296.    virtual void remove(sos_Typed_id&,sos_Object _p1);
  297.    virtual sos_Object __index(sos_Typed_id&,sos_Object _p1);
  298.    virtual sos_Object get_key(sos_Typed_id&,sos_Cursor _p1);
  299.    virtual sos_Object get_info(sos_Typed_id&,sos_Cursor _p1);
  300.    virtual void set_info(sos_Typed_id&,sos_Cursor _p1,sos_Object _p2);
  301.    virtual void move_cursor(sos_Typed_id&,sos_Cursor _p1,sos_Object _p2);
  302.    virtual void insert_before(sos_Typed_id&,sos_Cursor _p1,sos_Object _p2,sos_Object _p3);
  303.    virtual void insert_after(sos_Typed_id&,sos_Cursor _p1,sos_Object _p2,sos_Object _p3);
  304.    virtual sos_Int size(sos_Typed_id&);
  305.    virtual sos_Bool is_role1(sos_Typed_id&,sos_Object _p1);
  306.    virtual sos_Bool is_role2(sos_Typed_id&,sos_Object _p1);
  307.    virtual sos_Object get_role1(sos_Typed_id&,sos_Cursor _p1);
  308.    virtual sos_Object get_role2(sos_Typed_id&,sos_Cursor _p1);
  309.    virtual void clear(sos_Typed_id&);
  310.    virtual void remove_at(sos_Typed_id&,sos_Cursor _p1);
  311.    virtual sos_Int card(sos_Typed_id&);
  312.    virtual sos_Cursor open_cursor(sos_Typed_id&,sos_Container _p1 = TEMP_CONTAINER);
  313.    virtual void close_cursor(sos_Typed_id&,sos_Cursor _p1);
  314.    virtual sos_Cursor duplicate(sos_Typed_id&,sos_Cursor _p1);
  315.    virtual sos_Bool is_valid(sos_Typed_id&,sos_Cursor _p1);
  316.    virtual sos_Bool to_first(sos_Typed_id&,sos_Cursor _p1);
  317.    virtual sos_Bool to_last(sos_Typed_id&,sos_Cursor _p1);
  318.    virtual sos_Bool to_succ(sos_Typed_id&,sos_Cursor _p1,sos_Int _p2 = 1);
  319.    virtual sos_Bool to_pred(sos_Typed_id&,sos_Cursor _p1,sos_Int _p2 = 1);
  320. private:
  321.    virtual void init_table(sos_Typed_id&);
  322.    virtual void increase_hash_table(sos_Typed_id&);
  323.    virtual void decrease_hash_table(sos_Typed_id&);
  324.    virtual void insert_in_list(sos_Typed_id&,sos_Object _p1,sos_Object _p2,sos_Object _p3,sos_Object _p4);
  325.    virtual void insert_in_page_list(sos_Typed_id&,sos_Container _p1,sos_Bool _p2,sos_Bool _p3,sos_Offset _p4,sos_Int _p5,sos_Object _p6,sos_Object _p7,sos_Object _p8,sos_Object _p9);
  326.    virtual sos_Object remove_from_page_list(sos_Typed_id&,sos_Container _p1,sos_Bool _p2,sos_Bool _p3,sos_Offset _p4,sos_Int _p5,sos_Object _p6);
  327.    virtual sos_Bool assemble_page(sos_Typed_id&,sos_Offset _p1,sos_Char _p2,sos_Int _p3);
  328.    virtual void split_page(sos_Typed_id&,sos_Container _p1,sos_Bool _p2,sos_Offset _p3,sos_Char _p4,sos_Int _p5,sos_Int _p6);
  329.    virtual sos_Object search_succ_pred(sos_Typed_id&,sos_Object _p1,sos_Int _p2);
  330.    virtual void write_succ_pred(sos_Typed_id&,sos_Container _p1,sos_Bool _p2,sos_Bool _p3,sos_Object _p4,sos_Bool _p5,sos_Object _p6);
  331.    virtual sos_Int get_cardinality(sos_Typed_id&);
  332.    virtual void set_cardinality(sos_Typed_id&,sos_Int);
  333.    virtual sos_Object get_first_object(sos_Typed_id&);
  334.    virtual void set_first_object(sos_Typed_id&,sos_Object);
  335.    virtual sos_Object get_last_object(sos_Typed_id&);
  336.    virtual void set_last_object(sos_Typed_id&,sos_Object);
  337.    virtual sos_Bool get_list_cursor(sos_Typed_id&);
  338.    virtual void set_list_cursor(sos_Typed_id&,sos_Bool);
  339.    virtual sos_Offset get_no_of_pages_offset(sos_Typed_id&);
  340.    virtual void set_no_of_pages_offset(sos_Typed_id&,sos_Offset);
  341.    virtual sos_Int get_no_of_pages(sos_Typed_id&);
  342.    virtual void set_no_of_pages(sos_Typed_id&,sos_Int);
  343.    virtual sos_Int get_no_of_page_lists(sos_Typed_id&);
  344.    virtual void set_no_of_page_lists(sos_Typed_id&,sos_Int);
  345.    virtual sos_Int get_global_depth(sos_Typed_id&);
  346.    virtual void set_global_depth(sos_Typed_id&,sos_Int);
  347.    virtual sos_Int get_ht_entries(sos_Typed_id&);
  348.    virtual void set_ht_entries(sos_Typed_id&,sos_Int);
  349.    virtual sos_Int get_ht_offset(sos_Typed_id&);
  350.    virtual void set_ht_offset(sos_Typed_id&,sos_Int);
  351. public:
  352. protected:
  353.    static void local_initialize(sos_Object_sos_Object_Mapping _p1);
  354.    static void local_finalize(sos_Object_sos_Object_Mapping _p1);
  355.    static void local_assign(sos_Object_sos_Object_Mapping _p1,sos_Object _p2);
  356.    static sos_Bool local_equal(sos_Object_sos_Object_Mapping _p1,sos_Object _p2,sos_Eq_kind _p3);
  357.    static sos_Int local_hash_value(sos_Object_sos_Object_Mapping _p1);
  358. };
  359. extern _sos_Object_sos_Object_Mapping *__sos_Object_sos_Object_Mapping_obj;
  360. class _sos_Object_Bag:virtual public _sos_Object_Collection
  361. {  friend class sos_Object_Bag;
  362.    virtual sos_Offset _offset_sos_Object () { return 0; }
  363.    virtual sos_Offset _offset_sos_Aggregate () { return 8; }
  364.    virtual sos_Offset _offset_sos_Object_Collection () { return 8; }
  365.    virtual sos_Offset _offset_sos_Object_Bag () { return 9; }
  366. public:
  367.    static _sos_Object_Bag* _make(sos_Typed_id&);
  368.    virtual sos_Offset _size();
  369.    void _create(sos_Typed_id&,sos_Bool list_cursor = TRUE,sos_Bool based_on_equal = FALSE);
  370. protected:
  371.    static void _create_comps(sos_Object_Bag,sos_Bool list_cursor = TRUE,sos_Bool based_on_equal = FALSE);
  372. public:
  373.    void _copy(sos_Typed_id&,sos_Object_Bag);
  374. protected:
  375.    static void _copy_comps(sos_Object_Bag,sos_Object_Bag);
  376. public:
  377.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  378.    virtual void destroy(sos_Typed_id&);
  379.    virtual void assign(sos_Typed_id&,sos_Object);
  380.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  381.    virtual sos_Int hash_value(sos_Typed_id&);
  382.    virtual sos_Int insert(sos_Typed_id&,sos_Object _p1);
  383.    virtual sos_Int remove(sos_Typed_id&,sos_Object _p1);
  384.    virtual void eliminate(sos_Typed_id&,sos_Object _p1);
  385.    virtual sos_Int occurrences(sos_Typed_id&,sos_Object _p1);
  386.    virtual void __plus_assign(sos_Typed_id&,sos_Object_Bag _p1);
  387.    virtual void __minus_assign(sos_Typed_id&,sos_Object_Bag _p1);
  388.    virtual void __times_assign(sos_Typed_id&,sos_Object_Bag _p1);
  389.    virtual sos_Bool __less(sos_Typed_id&,sos_Object_Bag _p1);
  390.    virtual sos_Bool __less_equal(sos_Typed_id&,sos_Object_Bag _p1);
  391.    virtual sos_Bool __greater(sos_Typed_id&,sos_Object_Bag _p1);
  392.    virtual sos_Bool __greater_equal(sos_Typed_id&,sos_Object_Bag _p1);
  393.    virtual void max_union(sos_Typed_id&,sos_Object_Bag _p1);
  394.    virtual sos_Int entity_occurs(sos_Typed_id&,sos_Cursor _p1);
  395.    virtual sos_Bool to_diff_succ(sos_Typed_id&,sos_Cursor _p1,sos_Int _p2 = 1);
  396.    virtual sos_Bool to_diff_pred(sos_Typed_id&,sos_Cursor _p1,sos_Int _p2 = 1);
  397.    virtual sos_Bool is_element(sos_Typed_id&,sos_Object _p1);
  398.    virtual sos_Object get(sos_Typed_id&,sos_Cursor _p1);
  399.    virtual void clear(sos_Typed_id&);
  400.    virtual void remove_at(sos_Typed_id&,sos_Cursor _p1);
  401.    virtual sos_Int card(sos_Typed_id&);
  402.    virtual sos_Cursor open_cursor(sos_Typed_id&,sos_Container _p1 = TEMP_CONTAINER);
  403.    virtual void close_cursor(sos_Typed_id&,sos_Cursor _p1);
  404.    virtual sos_Cursor duplicate(sos_Typed_id&,sos_Cursor _p1);
  405.    virtual sos_Bool is_valid(sos_Typed_id&,sos_Cursor _p1);
  406.    virtual sos_Bool to_first(sos_Typed_id&,sos_Cursor _p1);
  407.    virtual sos_Bool to_last(sos_Typed_id&,sos_Cursor _p1);
  408.    virtual sos_Bool to_succ(sos_Typed_id&,sos_Cursor _p1,sos_Int _p2 = 1);
  409.    virtual sos_Bool to_pred(sos_Typed_id&,sos_Cursor _p1,sos_Int _p2 = 1);
  410. private:
  411.    virtual void search_succ_pred(sos_Typed_id&,sos_Bag_node _p1,Index _p2,sos_Object& _p3,sos_Int& _p4,sos_Int& _p5);
  412.    virtual void write_current(sos_Typed_id&,sos_Cursor _p1,sos_Object _p2,sos_Int _p3,sos_Int _p4);
  413.    virtual sos_Int get_no_of_elements(sos_Typed_id&,sos_Object_sos_Int_Mapping _p1,sos_Object _p2);
  414.    virtual sos_Int set_no_of_elements(sos_Typed_id&,sos_Object_sos_Int_Mapping _p1,sos_Object _p2,sos_Int _p3,sos_Int _p4);
  415.    virtual sos_Int get_cardinality(sos_Typed_id&);
  416.    virtual void set_cardinality(sos_Typed_id&,sos_Int);
  417.    virtual sos_Object_sos_Int_Mapping get_m(sos_Typed_id&);
  418.    virtual void set_m(sos_Typed_id&,sos_Object_sos_Int_Mapping);
  419.    virtual sos_Bool get_list_cursor(sos_Typed_id&);
  420.    virtual void set_list_cursor(sos_Typed_id&,sos_Bool);
  421. public:
  422. protected:
  423.    static void local_initialize(sos_Object_Bag _p1);
  424.    static void local_finalize(sos_Object_Bag _p1);
  425.    static void local_assign(sos_Object_Bag _p1,sos_Object _p2);
  426.    static sos_Bool local_equal(sos_Object_Bag _p1,sos_Object _p2,sos_Eq_kind _p3);
  427.    static sos_Int local_hash_value(sos_Object_Bag _p1);
  428. };
  429. extern _sos_Object_Bag *__sos_Object_Bag_obj;
  430. class _sos_Object_Set:virtual public _sos_Object_Collection
  431. {  friend class sos_Object_Set;
  432.    virtual sos_Offset _offset_sos_Object () { return 0; }
  433.    virtual sos_Offset _offset_sos_Aggregate () { return 8; }
  434.    virtual sos_Offset _offset_sos_Object_Collection () { return 8; }
  435.    virtual sos_Offset _offset_sos_Object_Set () { return 9; }
  436. public:
  437.    static _sos_Object_Set* _make(sos_Typed_id&);
  438.    virtual sos_Offset _size();
  439.    void _create(sos_Typed_id&,sos_Bool list_cursor = TRUE,sos_Bool based_on_equal = FALSE);
  440. protected:
  441.    static void _create_comps(sos_Object_Set,sos_Bool list_cursor = TRUE,sos_Bool based_on_equal = FALSE);
  442. public:
  443.    void _copy(sos_Typed_id&,sos_Object_Set);
  444. protected:
  445.    static void _copy_comps(sos_Object_Set,sos_Object_Set);
  446. public:
  447.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  448.    virtual void destroy(sos_Typed_id&);
  449.    virtual void assign(sos_Typed_id&,sos_Object);
  450.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  451.    virtual sos_Int hash_value(sos_Typed_id&);
  452.    virtual void insert(sos_Typed_id&,sos_Object _p1);
  453.    virtual void remove(sos_Typed_id&,sos_Object _p1);
  454.    virtual void __plus_assign(sos_Typed_id&,sos_Object_Set _p1);
  455.    virtual void __minus_assign(sos_Typed_id&,sos_Object_Set _p1);
  456.    virtual void __times_assign(sos_Typed_id&,sos_Object_Set _p1);
  457.    virtual sos_Bool __less(sos_Typed_id&,sos_Object_Set _p1);
  458.    virtual sos_Bool __less_equal(sos_Typed_id&,sos_Object_Set _p1);
  459.    virtual sos_Bool __greater(sos_Typed_id&,sos_Object_Set _p1);
  460.    virtual sos_Bool __greater_equal(sos_Typed_id&,sos_Object_Set _p1);
  461.    virtual sos_Bool is_element(sos_Typed_id&,sos_Object _p1);
  462.    virtual sos_Object get(sos_Typed_id&,sos_Cursor _p1);
  463.    virtual void clear(sos_Typed_id&);
  464.    virtual void remove_at(sos_Typed_id&,sos_Cursor _p1);
  465.    virtual sos_Int card(sos_Typed_id&);
  466.    virtual sos_Cursor open_cursor(sos_Typed_id&,sos_Container _p1 = TEMP_CONTAINER);
  467.    virtual void close_cursor(sos_Typed_id&,sos_Cursor _p1);
  468.    virtual sos_Cursor duplicate(sos_Typed_id&,sos_Cursor _p1);
  469.    virtual sos_Bool is_valid(sos_Typed_id&,sos_Cursor _p1);
  470.    virtual sos_Bool to_first(sos_Typed_id&,sos_Cursor _p1);
  471.    virtual sos_Bool to_last(sos_Typed_id&,sos_Cursor _p1);
  472.    virtual sos_Bool to_succ(sos_Typed_id&,sos_Cursor _p1,sos_Int _p2 = 1);
  473.    virtual sos_Bool to_pred(sos_Typed_id&,sos_Cursor _p1,sos_Int _p2 = 1);
  474. private:
  475.    virtual sos_Bool get_list_cursor(sos_Typed_id&);
  476.    virtual void set_list_cursor(sos_Typed_id&,sos_Bool);
  477.    virtual sos_Object_sos_Bool_Mapping get_m(sos_Typed_id&);
  478.    virtual void set_m(sos_Typed_id&,sos_Object_sos_Bool_Mapping);
  479. public:
  480. protected:
  481.    static void local_initialize(sos_Object_Set _p1);
  482.    static void local_finalize(sos_Object_Set _p1);
  483.    static void local_assign(sos_Object_Set _p1,sos_Object _p2);
  484.    static sos_Bool local_equal(sos_Object_Set _p1,sos_Object _p2,sos_Eq_kind _p3);
  485.    static sos_Int local_hash_value(sos_Object_Set _p1);
  486. };
  487. extern _sos_Object_Set *__sos_Object_Set_obj;
  488. class _sos_Node:virtual public _sos_Object
  489. {  friend class sos_Node;
  490.    virtual sos_Offset _offset_sos_Object () { return 0; }
  491.    virtual sos_Offset _offset_sos_Node () { return 8; }
  492. public:
  493.    static _sos_Node* _make(sos_Typed_id&);
  494.    virtual sos_Offset _size();
  495.    void _create(sos_Typed_id&);
  496.    void _copy(sos_Typed_id&,sos_Node);
  497.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  498.    virtual void destroy(sos_Typed_id&);
  499.    virtual void assign(sos_Typed_id&,sos_Object);
  500.    static void local_assign(sos_Node,sos_Object);
  501.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  502.    static sos_Bool local_equal(sos_Node,sos_Object,sos_Eq_kind);
  503.    virtual sos_Int hash_value(sos_Typed_id&);
  504.    static sos_Int local_hash_value(sos_Node);
  505. protected:
  506. };
  507. extern _sos_Node *__sos_Node_obj;
  508. class _sos_Array_node:virtual public _sos_Node
  509. {  friend class sos_Array_node;
  510.    virtual sos_Offset _offset_sos_Object () { return 0; }
  511.    virtual sos_Offset _offset_sos_Node () { return 8; }
  512.    virtual sos_Offset _offset_sos_Array_node () { return 8; }
  513. public:
  514.    static _sos_Array_node* _make(sos_Typed_id&);
  515.    virtual sos_Offset _size();
  516.    void _create(sos_Typed_id&);
  517.    void _copy(sos_Typed_id&,sos_Array_node);
  518.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  519.    virtual void destroy(sos_Typed_id&);
  520.    virtual void assign(sos_Typed_id&,sos_Object);
  521.    static void local_assign(sos_Array_node,sos_Object);
  522.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  523.    static sos_Bool local_equal(sos_Array_node,sos_Object,sos_Eq_kind);
  524.    virtual sos_Int hash_value(sos_Typed_id&);
  525.    static sos_Int local_hash_value(sos_Array_node);
  526. private:
  527.    virtual Index get_index(sos_Typed_id&);
  528.    virtual void set_index(sos_Typed_id&,Index);
  529. public:
  530. protected:
  531. };
  532. extern _sos_Array_node *__sos_Array_node_obj;
  533. class _sos_List_node:virtual public _sos_Node
  534. {  friend class sos_List_node;
  535.    virtual sos_Offset _offset_sos_Object () { return 0; }
  536.    virtual sos_Offset _offset_sos_Node () { return 8; }
  537.    virtual sos_Offset _offset_sos_List_node () { return 8; }
  538. public:
  539.    static _sos_List_node* _make(sos_Typed_id&);
  540.    virtual sos_Offset _size();
  541.    void _create(sos_Typed_id&);
  542.    void _copy(sos_Typed_id&,sos_List_node);
  543.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  544.    virtual void destroy(sos_Typed_id&);
  545.    virtual void assign(sos_Typed_id&,sos_Object);
  546.    static void local_assign(sos_List_node,sos_Object);
  547.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  548.    static sos_Bool local_equal(sos_List_node,sos_Object,sos_Eq_kind);
  549.    virtual sos_Int hash_value(sos_Typed_id&);
  550.    static sos_Int local_hash_value(sos_List_node);
  551. private:
  552.    virtual void insert_before(sos_Typed_id&,sos_List_node _p1);
  553.    virtual void insert_after(sos_Typed_id&,sos_List_node _p1);
  554.    virtual void remove(sos_Typed_id&);
  555.    virtual sos_List_node succ(sos_Typed_id&,sos_Int steps = 1);
  556.    virtual sos_List_node pred(sos_Typed_id&,sos_Int steps = 1);
  557.    virtual sos_List_node get_succ(sos_Typed_id&);
  558.    virtual void set_succ(sos_Typed_id&,sos_List_node);
  559.    virtual sos_List_node get_pred(sos_Typed_id&);
  560.    virtual void set_pred(sos_Typed_id&,sos_List_node);
  561.    virtual sos_Object get_val(sos_Typed_id&);
  562.    virtual void set_val(sos_Typed_id&,sos_Object);
  563. public:
  564. protected:
  565. };
  566. extern _sos_List_node *__sos_List_node_obj;
  567. class _sos_Map_node:virtual public _sos_Node
  568. {  friend class sos_Map_node;
  569.    virtual sos_Offset _offset_sos_Object () { return 0; }
  570.    virtual sos_Offset _offset_sos_Node () { return 8; }
  571.    virtual sos_Offset _offset_sos_Map_node () { return 8; }
  572. public:
  573.    static _sos_Map_node* _make(sos_Typed_id&);
  574.    virtual sos_Offset _size();
  575.    void _create(sos_Typed_id&);
  576.    void _copy(sos_Typed_id&,sos_Map_node);
  577.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  578.    virtual void destroy(sos_Typed_id&);
  579.    virtual void assign(sos_Typed_id&,sos_Object);
  580.    static void local_assign(sos_Map_node,sos_Object);
  581.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  582.    static sos_Bool local_equal(sos_Map_node,sos_Object,sos_Eq_kind);
  583.    virtual sos_Int hash_value(sos_Typed_id&);
  584.    static sos_Int local_hash_value(sos_Map_node);
  585. protected:
  586.    virtual sos_Object get_key_val(sos_Typed_id&);
  587.    virtual void set_key_val(sos_Typed_id&,sos_Object);
  588. public:
  589. protected:
  590. };
  591. extern _sos_Map_node *__sos_Map_node_obj;
  592. class _sos_Bag_node:virtual public _sos_Map_node
  593. {  friend class sos_Bag_node;
  594.    virtual sos_Offset _offset_sos_Object () { return 0; }
  595.    virtual sos_Offset _offset_sos_Node () { return 8; }
  596.    virtual sos_Offset _offset_sos_Map_node () { return 8; }
  597.    virtual sos_Offset _offset_sos_Bag_node () { return 24; }
  598. public:
  599.    static _sos_Bag_node* _make(sos_Typed_id&);
  600.    virtual sos_Offset _size();
  601.    void _create(sos_Typed_id&);
  602.    void _copy(sos_Typed_id&,sos_Bag_node);
  603.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  604.    virtual void destroy(sos_Typed_id&);
  605.    virtual void assign(sos_Typed_id&,sos_Object);
  606.    static void local_assign(sos_Bag_node,sos_Object);
  607.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  608.    static sos_Bool local_equal(sos_Bag_node,sos_Object,sos_Eq_kind);
  609.    virtual sos_Int hash_value(sos_Typed_id&);
  610.    static sos_Int local_hash_value(sos_Bag_node);
  611. private:
  612.    virtual sos_Int get_tag_no(sos_Typed_id&);
  613.    virtual void set_tag_no(sos_Typed_id&,sos_Int);
  614.    virtual sos_Int get_tag_max(sos_Typed_id&);
  615.    virtual void set_tag_max(sos_Typed_id&,sos_Int);
  616. public:
  617. protected:
  618. };
  619. extern _sos_Bag_node *__sos_Bag_node_obj;
  620. extern void _agg_init_sos();
  621. #endif
  622.